package com.kloooong.top.message;



import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.apache.commons.lang3.StringUtils;

import java.util.Date;

@Getter
@Setter
@ToString
@EqualsAndHashCode(of = "id")
public class OpenSyncBizDataDO {

        /**
         * 主键
         */
        private Long id;

        /**
         * 创建时间
         */
        private Date gmtCreate;

        /**
         * 更新时间
         */
        private Date gmtModified;

        /**
         * 业务ID
         */
        private String bizId;

        /**
         * 订阅者ID。默认格式为suiteId_0的格式
         */

        private String subscribeId;

        /**
         * 发生变更事件的所属企业corpId
         * 也就是bizId字段的所属企业corpId
         */
        private String corpId;

        /**
         * 业务类型。具体值参见DingCloudPushBizTypeEnum的value字段
         * bizType和bizId确认一条业务数据。
         */
        private int bizType;

        /**
         * 业务ID记录所对应的业务数据。JSON格式
         */
        private String bizData;

        /**
         * 对账游标
         */
        private Integer openCursor;

        /**
         * 数据记录状态。
         * 钉钉推送数据过来默认该字段值为0
         * 如果ISV轮训读取了该记录，并将该记录存入自己的数据表中，该字段更新为1。表示已经处理完毕
         * 如果处理过程中处理失败。可以将该字段标记为除0，1之外的其他值。进入人工处理。
         */
        private Integer status;


        /**
         * 通过subscribeId来解析套件id
         */
        public String getSuiteId(){
            return StringUtils.substringBefore(this.subscribeId, "_");
        }

}
